package com.ruoyi.salesInvoice.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.product.domain.Product;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 销售发票主表
 */
public class SalesInvoiceOrder extends BaseEntity {
    private String productName;
    private String beginTime;
    private String endTime;
    private String shdz;
    private String phone;
    private String phone1;
    private String fname;
    private String remarks;
    private Long allNum;
    private String unit;
    private String deptName;
    /**
     * 销售发票自增主键id
     */
    private Long salesInvoiceId;

    /**
     * 销售发票订单编号
     */
    private String salesInvoiceNum;

    /**
     * 部门id（该单子属于哪个部门）
     */
    private Long deptId;

    /**
     * 业务员id
     */
    private Long userId;

    /**
     * 业务员名称
     */
    private String userName;

    /**
     * 客户id
     */
    private Long companyId;

    private Long customerId;


    /**
     * 客户名称
     */
    private String companyName;

    /**
     * 客户的联系方式
     */
    private String companyPhone;

    /**
     * 订单日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date invoiceDate;

    /**
     * 发票类型
     */
    private String saleInvoiceType;

    /**
     * 订单状态
     */
    private String invoiceStatus;

    /**
     * 订单审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date auditTime;

    /**
     * 订单金额
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal invoiceAmount;

    /**
     * 订单金额(含税)
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal taxTotalAmount;

    /**
     * 开票总数量
     */
    private int totalNum;

    /**
     * 开票备注
     */
    private String invoiceRemark;

    /**
     * 开票子表集合
     */
    private List<SalesInvoiceModel> salesInvoiceModelList;

    /**
     * 产品型号
     */
    private List<Product> products;


    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public Long getAllNum() {
        return allNum;
    }

    public void setAllNum(Long allNum) {
        this.allNum = allNum;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getPhone1() {
        return phone1;
    }

    public void setPhone1(String phone1) {
        this.phone1 = phone1;
    }

    public String getFname() {
        return fname;
    }

    public void setFname(String fname) {
        this.fname = fname;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getShdz() {
        return shdz;
    }

    public void setShdz(String shdz) {
        this.shdz = shdz;
    }

    private String id;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(String beginTime) {
        this.beginTime = beginTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }


    public List<Product> getProducts() {
        return products;
    }

    public void setProducts(List<Product> products) {
        this.products = products;
    }

    public Long getSalesInvoiceId() {
        return salesInvoiceId;
    }

    public void setSalesInvoiceId(Long salesInvoiceId) {
        this.salesInvoiceId = salesInvoiceId;
    }

    public String getSalesInvoiceNum() {
        return salesInvoiceNum;
    }

    public void setSalesInvoiceNum(String salesInvoiceNum) {
        this.salesInvoiceNum = salesInvoiceNum;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getCompanyPhone() {
        return companyPhone;
    }

    public void setCompanyPhone(String companyPhone) {
        this.companyPhone = companyPhone;
    }

    public Date getInvoiceDate() {
        return invoiceDate;
    }

    public void setInvoiceDate(Date invoiceDate) {
        this.invoiceDate = invoiceDate;
    }

    public String getSaleInvoiceType() {
        return saleInvoiceType;
    }

    public void setSaleInvoiceType(String saleInvoiceType) {
        this.saleInvoiceType = saleInvoiceType;
    }

    public String getInvoiceStatus() {
        return invoiceStatus;
    }

    public void setInvoiceStatus(String invoiceStatus) {
        this.invoiceStatus = invoiceStatus;
    }

    public Date getAuditTime() {
        return auditTime;
    }

    public void setAuditTime(Date auditTime) {
        this.auditTime = auditTime;
    }

    public BigDecimal getInvoiceAmount() {
        return invoiceAmount;
    }

    public void setInvoiceAmount(BigDecimal invoiceAmount) {
        this.invoiceAmount = invoiceAmount;
    }

    public BigDecimal getTaxTotalAmount() {
        return taxTotalAmount;
    }

    public void setTaxTotalAmount(BigDecimal taxTotalAmount) {
        this.taxTotalAmount = taxTotalAmount;
    }

    public int getTotalNum() {
        return totalNum;
    }

    public void setTotalNum(int totalNum) {
        this.totalNum = totalNum;
    }

    public String getInvoiceRemark() {
        return invoiceRemark;
    }

    public void setInvoiceRemark(String invoiceRemark) {
        this.invoiceRemark = invoiceRemark;
    }

    public List<SalesInvoiceModel> getSalesInvoiceModelList() {
        return salesInvoiceModelList;
    }

    public String getDeptName() {

        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public void setSalesInvoiceModelList(List<SalesInvoiceModel> salesInvoiceModelList) {
        this.salesInvoiceModelList = salesInvoiceModelList;
    }
}
